home *** CD-ROM | disk | FTP | other *** search
-
- /*
- 0.9.2 fixes
-
- [x] split words
- [x] slider
- [x] saving settings
- [ ] fix bad mime types?
- [x] menu bug
- [x] date show hide
- [ ] special chars fix
- [x] refresh on interval
- [/] image thumbnails
- [x] external stylesheet
- */
-
- function listObject(obj, s) {
- var res = "List: " + obj + "\n";
- for(var list in obj) {
- if (list.indexOf(s) == -1)
- res += list + ", ";
- }
-
- alert(res);
- }
- //var mime = Components.classes["@mozilla.org/mime;1"].getService(Components.interfaces.nsIMIMEService);
-
- //listObject(mime);
-
- var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
-
- prefs = prefs.getBranch("extensions.feedview.");
-
- var processor = new XSLTProcessor();
-
- var dataXSL = document.implementation.createDocument("", "", null);
-
- dataXSL.addEventListener("load", onXslLoad, false);
-
- dataXSL.load("chrome://feedview/content/rss.xml");
-
- function onXslLoad(){processor.importStylesheet(dataXSL);}
-
-
- function observeSettings(evnt)
- {
- try{
- //alert("out");
- if(!evnt.originalTarget.documentElement.hasAttribute("feedviewDocument"))return;
- //alert("saving settings");
- var doc = evnt.originalTarget;
- var size = doc.getElementById("sizeslider").getAttribute("curpos");
- var sw = doc.getElementById("switchdate").getAttribute("show");
-
-
-
- prefs.setIntPref("articleSize", size);
- prefs.setIntPref("showDate", sw);
-
- //window.removeEventListener("unload", observeSettings, true);
- }catch(ex){
- //alert("ex: " + ex);
- }
- }
-
- function load(evnt)
- {
- try{
-
- /*
- if(evnt.originalTarget instanceof HTMLDocument ){
- var url = evnt.originalTarget.URL.toLowerCase();
- if(url.indexOf(".rss") != -1 || url.indexOf(".rdf") != -1){
-
- alert("nog xml rss file");
- //var doc = new Array();
- //doc.load(url);
- //
- listObject(evnt.originalTarget);
- alert(evnt.originalTarget.textContent);
- //listObject(evnt.originalTarget.ownerDocument);
- var parser = new DOMParser();
- evnt.originalTarget = parser.parseFromString("<rss></rss>", "text/xml");
-
- //listObject(parser);
-
- }
-
- }
- */
-
- if(evnt.originalTarget instanceof XMLDocument){
-
-
- var dataXML = evnt.originalTarget;
-
- if((dataXML.documentElement.getAttribute("xmlns") != null
- && (dataXML.documentElement.getAttribute("xmlns").toLowerCase() == "http://purl.org/rss/1.0/"
- || dataXML.documentElement.getAttribute("xmlns").toLowerCase() == "http://my.netscape.com/rdf/simple/0.9/"
- || dataXML.documentElement.getAttribute("xmlns").toLowerCase() == "http://purl.org/atom/ns#")
- )
- || (dataXML.documentElement.nodeName != null && dataXML.documentElement.nodeName.toLowerCase() == "rss")) isFeed = true; else return;
-
- // set for unload
- evnt.originalTarget.documentElement.setAttribute("feedviewDocument", true);
-
- var ownerDocument = document.implementation.createDocument("", "", null);
-
- var strbundle=document.getElementById("feedViewString");
-
- processor.setParameter(null, "feedUrl", evnt.originalTarget.documentURI);
-
-
-
- processor.setParameter(null, "article_length", strbundle.getString("length")); // translation
-
- processor.setParameter(null, "feedTitle", strbundle.getString("title") );
-
-
- // Import all settings and set default values if they had bad values
- // catch seperatly ...
-
- try{ articleSize = prefs.getIntPref("articleSize"); } catch(ex) { articleSize = 50; }
- processor.setParameter(null, "articleSize", articleSize);
-
- try{ showDate = prefs.getIntPref("showDate"); } catch(ex) { showDate = 1; }
- processor.setParameter(null, "showDate", showDate);
-
- try{ showBar = prefs.getBoolPref("showBar"); } catch(ex) { showBar = true; }
- processor.setParameter(null, "showBar", showBar);
-
- try{ showImage = prefs.getBoolPref("showImage"); } catch(ex) { showImage = true; }
- processor.setParameter(null, "showImage", showImage);
-
- try{ timerInterval = prefs.getIntPref("timerInterval"); } catch(ex) { timerInterval = 0; }
- processor.setParameter(null, "timerInterval", timerInterval);
-
- try{ externalCSS = prefs.getCharPref("externalCSS"); } catch(ex) { externalCSS = ""; }
- processor.setParameter(null, "externalCSS", externalCSS );
-
-
-
-
- var len = dataXML.getElementsByTagName("item").length;
- if(len == 0) len = dataXML.getElementsByTagName("entry").length;
-
- processor.setParameter(null, "feedDescription", strbundle.getFormattedString("description", [len] ) );
-
- var newFragment = processor.transformToFragment(dataXML, ownerDocument);
-
- var oldLink = dataXML.documentElement.firstChild;
-
- // it would be better if we could replace the documentElement.. now the rdf/rss/feed tag remains
- dataXML.documentElement.replaceChild(newFragment, oldLink);
-
- var oldLink = dataXML.documentElement.firstChild.nextSibling;
-
-
-
- while(oldLink != null)
- {
- oldLinkX = oldLink.nextSibling;
-
- if(oldLinkX != null)
- dataXML.documentElement.removeChild(oldLink);
-
- oldLink = oldLinkX;
-
-
- }
-
-
-
-
- }
- }catch(ex){
- //alert("Feedview error: \n" + ex);
- }
- }
-
-
-
- window.addEventListener("load", load, true);
- window.addEventListener("unload", observeSettings, true);
-
-